package gm.server;

import gm.GmLog;

/**
 * Gép valós hardware támogatással.
 *
 * @author imruf84
 */
public class RealMachine extends Machine {

    /**
     * Konstruktor.
     *
     * @param configName beállítások állományának a neve
     */
    public RealMachine(String configName) {
        super(configName);
        setUpHoleTester();
    }

    /**
     * Valós lyukfelismerő csatolása.
     */
    private void setUpHoleTester() {

        System.out.println("real hole tester added");

        // Valós lyukfelismerő csatolása.
        setHoleTestMethod(new HoleTester() {
            @Override
            public boolean isHole(double stepsL, double stepsR) {
                GmLog.printError(new UnsupportedOperationException("Real hole tester is not supported yet. It's always true."));
                return true;
            }
        });
    }

    @Override
    protected Motor[] createMotors() {

        RealMotor motorLeft = new RealMotor(LEFT_MOTOR_ID, LEFT_MOTOR_NAME, getRotationsPerMinute(), getStepsPerRotation());
        RealMotor motorRight = new RealMotor(RIGHT_MOTOR_ID, RIGHT_MOTOR_NAME, getRotationsPerMinute(), getStepsPerRotation());

        System.out.println("real motors created");

        return new Motor[]{motorLeft, motorRight};
    }

}
